Monografias.com > Sin categoría
Descargar Imprimir Comentar Ver trabajos relacionados

Introducción a la planificación de instrucciones (página 2)




Enviado por Pablo Turmero



Partes: 1, 2

Monografias.com
Instruction status—indica en cual de las etapas está la instrucción
Functional unit status—Indica el estado de la unidad funcional (FU). 9 campos para cada unidad funcional
Busy—Indica si la unidad está ocupada o no
Op—Operación a realizar en la unidad (e.g., + or –)
Fi—Registro de destino
Fj, Fk—Número de los registros fuente
Qj, Qk—Unidades funcionales que producen los
registros fuente Fj, Fk
Rj, Rk—Flags indicando cuando están disponibles Fj, Fk
Register result status—Indica que unidad funcional escribirá en cada registro, si es que existe. En blanco cuando no hay instrucciones pendientes que vayan a escribir en el registro
11
ESTRUCTURA DE DATOS DE SCOREBOARD

Monografias.com
ESTRUCTURA DE DATOS BÁSICA DEL MARCADOR
12
(Gp:) Reg
(Gp:) ….
(Gp:) r1
(Gp:) r2
(Gp:) r4
(Gp:) r3
(Gp:) rm

(Gp:) Busy
(Gp:) Op
(Gp:) Ufunc 1
(Gp:) Fi
(Gp:) Fj
(Gp:) Fk
(Gp:) Qj
(Gp:) Rj
(Gp:) Qk
(Gp:) Rk
(Gp:) Ufunc 2
(Gp:) Ufunc n
(Gp:) Ufunc 3
(Gp:) .
.
(Gp:) .
.

(Gp:) Instr 1
Instr 2
Instr 3

Instr n
(Gp:) Ro
(Gp:) Wb
(Gp:) Ex
(Gp:) .
.

Monografias.com
Etapa IS
While inst no emitida and inst previa emitida do
if R[dest] = 0 and (UF[f] capaz ejecutar Op and UF[f,Busy]=0) // f = tipo de unidad funcional
then
R[dest] := f;
UF[f,Busy] := 1;
Inst[j,RO] := Inst[j,Ex] := Inst[j,Wb] := 0;
UF[f,Op] := Op; UF[f,Fi] := dest; UF[f,Fj] := src1;
if R[src1]=0 then UF[f,Rj]:=1; // válido
else UF[f,Rj]:=0;
UF[f,Qj]:=R[src1]; UF[f,Fk] := src2;
if R[src2]=0 then UF[f,Rk]:=1; // válido
else UF[f,Rk]:=0;
UF[f,Qk]:=R[src2];
enddo
13
ACTUALIZACIÓN DE LOS DATOS EN EL MARCADOR: EJEMPLO

Monografias.com
14
(Gp:) Read operands
(Gp:) Execution complete
(Gp:) Instruction status
(Gp:) Write result
(Gp:) Issue
(Gp:) Bookkeeping
(Gp:) Rj ? No; Rk ? No
(Gp:) ?f(if Qj(f)=FU then Rj(f) ? Yes); ?f(if Qk(f)=FU then Rj(f) ? Yes); Result(Fi(FU)) ? 0; Busy(FU) ? No
(Gp:) Busy(FU) ? yes; Op(FU) ? op; Fi(FU) ? `D’; Fj(FU) ? `S1’; Fk(FU) ? `S2’; Qj ? Result(‘S1’); Qk ? Result(`S2’); Rj ? not Qj; Rk ? not Qk; Result(‘D’) ? FU;
(Gp:) Rj and Rk
(Gp:) Functional unit done
(Gp:) Wait until
(Gp:) ?f((Fj( f )?Fi(FU) or Rj( f )=No) & (Fk( f ) ?Fi(FU) or Rk( f )=No))
(Gp:) Not busy (FU) and not result(D)

CONTROL DEL CAUCE CON SCOREBOARD

Monografias.com
CAUCE DLX CON SCOREBOARD
15
IS
(Gp:) Scoreboard

(Gp:) IF
(Gp:) FP Mult
(Gp:) FP Add
(Gp:) Integer ALU
(Gp:) FP Div
(Gp:) MEM
(Gp:) Wb
(Gp:) RO
(Gp:) Exint
(Gp:) ExFU1
(Gp:) ExFU2
(Gp:) ExFU3

IS

Monografias.com
Limitaciones del scoreboard:
No hay hardware para forwarding.
Limitado a instrucciones en bloques básicos (ventanas pequeñas).
Pequeño número de unidades funcionales (riesgos estructurales), especialmente unidades enteras/load store.
No se emite en caso de riesgo estructural.
Se espera por los riesgos WAR. Previene los riesgos WAW.
No permite que dos instrucciones terminen el mismo ciclo.
No permite manejar unidades funcionales segmentadas.
Mejoras
Una mejora fácil de introducir es permitir que el algoritmo pueda manejar unidades funcionales segmentadas.
16
SCOREBOARD: LIMITACIONES

Monografias.com
Para eliminar la limitaciones del scoreboard básico en el manejo de las unidades segmentadas recordemos que:
En scoreboard básico, la UF se libera cuando el resultado generado en la UF entra en la etapa WB (en el primer semiciclo de reloj).
Esto implica que en una instrucción larga la UF está asignada durante muchos ciclos.
Solución
Liberar la UF cuando el resultado de la primera etapa segmentada de la unidad funcional entra en el segundo segmento o si no está segmentada la UF cuando pase al WB.
En la arquitectura DLX propuesta el cauce aritmético entero está segmentado en dos etapas la EX y la MEM, mientras que las demás UF requieren varios ciclos pero no están segmentadas.
Veamos el efecto en el ejemplo anterior (sobre el cronograma).
17
SCOREBOARD CON UF SEGMENTADAS

Monografias.com
18
La ganacia se limita a un ciclo ya que la única UF segmentada es la entera y sólo
hay dos instrucciónes load.
DLX CON MARCADOR PARA UF SEGMENTADAS: EJEMPLO CRONOGRAMA

Monografias.com
Paralelismo a nivel de instrucción (ILP) en SW o HW.
Paralelismo a nivel de bucle es más fácil de ver.
Dependencias del paralelismo SW definidas por programa, riesgos si no pueden ser resueltas por el HD.
Las dependencias software y la sofisticación del compilador determinan si el compilador puede desenrollar los bucles.
Las dependencias de memoria son más difíciles de determinar.
HW explotando el ILP.
Funciona cuando no es posible determinar las dependencias en run time.
El código para una máquina funciona bien en otra.
Idea clave del Scoreboard: permite proseguir a instrucciones posteriores a una detenida (Decode => Issue instr & read operands).
Permite la ejecución out-of-order => finalización out-of-order.
Etapa ID verifica los riesgos estructurales.
19
SUMARIO

Partes: 1, 2
 Página anterior Volver al principio del trabajoPágina siguiente 

Nota al lector: es posible que esta página no contenga todos los componentes del trabajo original (pies de página, avanzadas formulas matemáticas, esquemas o tablas complejas, etc.). Recuerde que para ver el trabajo en su versión original completa, puede descargarlo desde el menú superior.

Todos los documentos disponibles en este sitio expresan los puntos de vista de sus respectivos autores y no de Monografias.com. El objetivo de Monografias.com es poner el conocimiento a disposición de toda su comunidad. Queda bajo la responsabilidad de cada lector el eventual uso que se le de a esta información. Asimismo, es obligatoria la cita del autor del contenido y de Monografias.com como fuentes de información.

Categorias
Newsletter